/*
 * @(#)Principal.java	1.16 01/12/12
 *
 * 版权所有2002 Sun MicroSystems，Inc.保留所有权利。Sun专有/机密。使用受许可条款的约束。
 */

package java.security;

/**
 * 此接口表示主体。主体可以是个人、公司、程序线程；任何可以具有身份的东西。有关详细信息，请参阅<a href>ACL白皮书。
 *
 * @see Identity
 * @see Certificate
 * @see java.security.acl.Acl
 * @see java.security.acl.Group
 *
 * @version 1.16, 01/12/12
 * @author Satish Dharmaraj 
 */
public interface Principal {

    /**
     * 将此主体与指定的对象进行比较。如果传入的对象与此接口的实现所表示的主体匹配，则返回True。
     *
     * @param another the principal to compare with.
     * 
     * @return true if
     * 传入的主体与该主体封装的主体相同，否则为FALSE。
     */
    public boolean equals(Object another);
    
    /**
     * Returns a string representation of this principal.  
     *
     * @return a string representation of this principal.
     */
    public String toString();

    /**
     * Returns a hashcode for this principal.
     *
     * @return a hashcode for this principal.
     */
    public int hashCode();

    /**  
     * Returns the name of this principal.
     *
     * @return the name of this principal.
     */
    public String getName();
}
